perm filename RSXMC.MAC[PAS,HE] blob
sn#621321 filedate 1981-10-26 generic text, type T, neo UTF8
.IIF NDF S$$YDF , .NLIST
.TITLE RSXMC
.IDENT /M3.2/
;
; COPYRIGHT (C) 1976, 1977, 1978, 1979
; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
;
; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ON A
; SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH THE
; INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE, OR
; ANY OTHER COPIES THEREOF, MAY NOT BE PROVIDED OR OTHERWISE
; MADE AVAILABLE TO ANY OTHER PERSON EXCEPT FOR USE ON SUCH
; SYSTEM AND TO ONE WHO AGREES TO THESE LICENSE TERMS. TITLE
; TO AND OWNERSHIP OF THE SOFTWARE SHALL AT ALL TIMES REMAIN
; IN DEC.
;
; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
; EQUIPMENT CORPORATION.
;
; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF
; ITS SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
;
; VERSION M3.2 BASELEVEL 26
;
; CREATED BY SYSGEN VERSIONS 3.2.3 / 2:3.2.2d
;
V$$RSN=32 ;RSX-11M VERSION 3.2
A$$CPS=0 ;ACP SUPPORT
M$$FCS=0 ;FCS/FILE SYSTEM SUPPORT
F$$LVL=1 ;FILES STRUCTURE LEVEL SUPPORT
C$$CKP=0 ;CHECKPOINTING SUPPORT
D$$YNC=0 ;DYNAMIC CHECKPOINT ALLOCATION
D$$ISK=0 ;NONRESIDENT TASK SUPPORT
P$$P45=0 ;ROTATING DATA LIGHTS
G$$EFN=0 ;GROUP GLOBAL EVENT FLAGS
M$$MGE=0 ;MEMORY MANAGEMENT
D$$YNM=0 ;DYNAMIC MEMORY ALLOCATION SUPPORT
D$$SHF=0 ;AUTOMATIC DYN. MEM. COMPACTION
P$$LAS=0 ;PROGRAM LOGICAL ADDRESS EXTENTIONS
P$$SRF=0 ;SEND/RECEIVE BY REFERENCE
P$$GMX=0 ;GET MAPPING CONTEXT
A$$CHK=0 ;ADDRESS CHECKING
I$$RDN=0 ;I/O RUNDOWN
T$$BTW=0 ;BREAKTHROUGH WRITE
A$$TRP=0 ;AST SUPPORT
C$$SMT=0 ;CANCEL SELECTIVE MARK TIMES
R$$SND=0 ;SEND/RECEIVE DIRECTIVES
D$$IAG=0 ;USER MODE DIAGNOSTICS
L$$DRV=0 ;LOADABLE DRIVER SUPPORT
G$$TPP=0 ;GET PARTITION PARAMETERS DIRECTIVE
L$$ASG=0 ;LOGICAL UNIT ASSIGNMENT
G$$TTK=0 ;GET TASK PARAMETERS DIRECTIVE
T$$KMG=0 ;TASK TERM./DEVICE NOT READY MESSAGES
P$$RFL=0 ;POWER FAIL
G$$TSS=0 ;GET SENSE SWITCH DIRECTIVE
A$$PRI=0 ;ALTER PRIORITY DIRECTIVE
C$$INT=0 ;CONNECT TO INTERRUPT DIRECTIVE
P$$OFF=0 ;PARENT/OFFSPRING TASKING
E$$XPR=0 ;EXTEND PARTITION (TASK) DIRECTIVE
Q$$OPT=5. ;PRE-ALLOCATE I/O PACKETS
N$$MOV=33. ;SIZE OF BLXIO 'MOV' TABLE
I$$RAR=0 ;INSTALL, REQUEST, AND REMOVE ON EXIT
T$$CCA=0 ;UNSOLICITED INPUT AST
T$$CTR=0 ;CONTROL-R SUPPORT
T$$GMC=0 ;GET TERMINAL CHARACTERISTICS
T$$SMC=0 ;SET TERMINAL CHARACTERISTICS
T$$GTS=0 ;GET TERMINAL DRIVER SUPPORT
T$$BUF=0 ;BUFFERED TERM I/O; CKP DURING INPUT
T$$RPR=0 ;READ AFTER PROMPT
T$$RUB=0 ;CRT RUBOUT SUPPORT
T$$UTO=0. ;TIME OUT ON UNSOLICITED INPUT
T$$CUP=0 ;DEVICE INDEPENDENT CURSOR POSITIONING
T$$CPW=0 ;FULL DUPLEX TERMINAL DRIVER
T$$BUF=0 ;CHECKPOINTABLE DURING TERMINAL INPUT
.IIF DF T$$CPW, T$$ACR=0
.IIF DF T$$CPW, T$$HFF=0
.IIF DF T$$CPW, T$$CCO=0
.IIF DF T$$CPW, T$$HLD=0
.IIF DF T$$CPW, T$$TRW=0
.IIF DF T$$CPW, T$$RNE=0
.IIF DF T$$CPW, T$$30P=0
.IIF DF T$$CPW, T$$VBF=0
.IIF DF T$$CPW, T$$UTB=0
.IIF DF T$$CPW, T$$SYN=0
.IIF DF T$$CPW, T$$RST=0
.IIF DF T$$CPW, T$$LWC=0
T$$ESC=0 ;ESCAPE SEQUENCE SUPPORT
T$$RED=0 ;HARDWARE RECEIVE ERROR SUPPORT
X$$DBT=0 ;EXECUTIVE DEBUGGING TOOL
R$$DER=0 ;CORAL DEALLOCATION ERROR CHECKING
L$$LDR=0 ;LOADABLE LOADER SUPPORT
S$$TOP=0 ;STOP BIT DIRECTIVES
C$$TTY=177564 ;REGISTER/STACK DUMP DEVICE CSR ADDRESS
C$$RSH=177564 ;CRASH REPORTING
E$$DVC=0 ;LOG DEVICE ERRORS AND TIMEOUT
E$$NSI=0 ;LOG UNDEFINED INTERRUPTS
E$$PER=0 ;LOG PARITY ERROR TRAPS
P$$RTY=0 ;PARITY MEMORY
C$$ORE=1024. ;SIZE OF DYNAMIC STORAGE REGION
S$$YSZ=124.*32. ;SIZE OF PHYSICAL MEMORY IN 32W BLOCKS
F$$LPP=0 ;FLOATING POINT PROCESSOR SUPPORT
K$$CSR=172540 ;PROGRAMMABLE CLOCK CSR ADDRESS
K$$CNT=172542 ;COUNT REGISTER ADDRESS
K$$TPS=50. ;TICKS PER SECOND
K$$LDC=200. ;LOAD COUNT VALUE
K$$IEN=113 ;CLOCK INTERRUPT ENABLE (KW11-P IN PROG MODE)
H$$RTZ=60. ;LINE FREQUENCY
D$$WCK=0 ;DISK WRITECHECK SUPPORT
R$$K11=1. ;RK11 RK05 DISK CONTROLLERS
C$$ONS=1. ;CONSOLE DRIVER
N$$LDV=1. ;NULL DEVICE
M$$OVR=0 ;OVERLAYED MCR
M$$CRX=0 ;EXTERNAL MCR FUNCTIONS
D$$L11=1. ;DL11 A/B/C/D LINE INTERFACES
LD$TT=0 ;LOADABLE TTDRV
D$$Z11=1. ;DZ11 ASYNCHRONOUS LINE MULTIPLEXERS
D$$ZMD=0 ;DZ11 MODEM SUPPORT
T$$ZAN=12430 ;DZ11 ANSWER BAUD RATE
V$$CTR=400 ;HIGHEST INTERRUPT VECTOR
C$$OTM=0 ;CONSOLE TIME STAMP
M$$CRB=84. ;MCR COMMAND BUFFER LENGTH
R$$11M=0 ;RSX-11M SYSTEM
;
; EXEC MACROS
;
; ASSUME MACRO FOR CHECKING ADJACENCY AND OFFSET VALUE ASSUMPTIONS
;
.MACRO ASSUME A,B=0
.IF NE <A>-<B>
.ERROR ;EXPRESSION(S) NOT EQUAL
.ENDC
.ENDM
;
; CALL SUBROUTINE
;
.MACRO CALL SUBR ARG
.IF IDN <$INTSV>,<SUBR>
JSR R5,$INTSV
.IF DF L$$SI1
.WORD ARG
.IFF
.WORD ↑C<ARG>&PR7
.ENDC
.IFF
.IF IDN <$SAVNR>,<SUBR>
JSR R5,$SAVNR
.IFF
.IF IDN <$SWSTK>,<SUBR>
EMT 376
.WORD ARG
.IFF
JSR PC,SUBR
.ENDC
.ENDC
.ENDC
.ENDM
;
; CALL AND RETURN FROM SUBROUTINE
;
.MACRO CALLR SUBR
JMP SUBR
.ENDM
;
; CRASH SYSTEM
;
.MACRO CRASH
IOT
.ENDM
;
; DIRECTIVE REGISTER SAVE AND SET PRIORITY
;
.MACRO DIRSV$
JSR R5,$DIRSV
.ENDM
;
; SET DIRECTIVE STATUS
;
.MACRO DRSTS VALUE
TRAP VALUE
.ENDM
;
; GENERATE INTERRUPT ROUTINE ENTRY POINT LABEL
;
.IF DF E$$DVC
.MACRO INTLB NUM,NAM
$'NAM'NUM'T::
.ENDM
.ENDC
;
; INTERRUPT SAVE GENERATION MACRO FOR ERROR LOGGING DEVICES
;
.MACRO INTSE$ DEV,PRI,NCTRLR,PSWSV,UCBSV,?LAB
.IF DF L$$DRV & LD$'DEV & M$$MGE
$'DEV'INT::
.IF NDF E$$DVC
.IF EQ NCTRLR-1
CLR R4
.ENDC
.ENDC
.IFF
.IF NDF E$$DVC
$'DEV'INT::INTSV$ DEV,PRI,NCTRLR,PSWSV,UCBSV
.IF EQ NCTRLR-1
CLR R4
.ENDC
.MEXIT
.IFF
$$$=0
.REPT NCTRLR
INTLB \$$$,DEV
JSR R5,$INTSE
SCBLB \$$$,DEV
.IF DF L$$SI1
.WORD PRI
.IFF
.WORD ↑C<PRI>&PR7
.ENDC
.IF GT NCTRLR-$$$-1
BR LAB
.ENDC
$$$=$$$+1
.ENDR
LAB:
.ENDC
.ENDC
GTUCB$ UCBSV,NCTRLR
.ENDM
;
; INTERRUPT SAVE GENERATION FOR NON-ERROR LOGGING DEVICES
;
.MACRO INTSV$ DEV,PRI,NCTRLR,PSWSV,UCBSV
.IF NDF L$$DRV ! M$$MGE ! LD$'DEV
.IF GT NCTRLR-1
.IF B <PSWSV>
MFPS TEMP
.IFF
MFPS PSWSV
.ENDC
.IFTF
JSR R5,$INTSV
.IF DF L$$SI1
.WORD PRI
.IFF
.WORD ↑C<PRI>&PR7
.ENDC
.IFT
.IF B <PSWSV>
MOV TEMP,R4
.IFF
MOV PSWSV,R4
.ENDC
BIC #177760,R4
ASL R4
.ENDC
.ENDC
GTUCB$ UCBSV,NCTRLR
.ENDM
;
; GENERATE CODE TO LOAD UCB ADDRESS INTO R5 -- CALLED
; ONLY BY INTSE$ AND INTSV$
;
.MACRO GTUCB$ UCBSV,NCTRLR
.IF NB <UCBSV>
.IF GT NCTRLR-1
MOV UCBSV(R4),R5
.IFF
MOV UCBSV,R5
.ENDC
.IFF
.IF GT NCTRLR-1
MOV CNTBL(R4),R5
.IFF
MOV CNTBL,R5
.ENDC
.ENDC
.ENDM
;
; PROCESSOR STATUS READ/WRITE
;
.IF NDF L$$SI1
.MACRO MFPS DST
MOVB @#PS,DST
.ENDM
.MACRO MTPS SRC
.IF IDN <#0>,<SRC>
CLRB @#PS
.IFF
MOVB SRC,@#PS
.ENDC
.ENDM
.ENDC
;
; SAVE NONVOLATILE REGISTERS
;
.MACRO SAVNR
JSR R5,$SAVNR
.ENDM
;
; GENERATE STATUS CONTROL BLOCK REFERENCE LABEL
;
.IF DF E$$DVC
.MACRO SCBLB NUM,NAM
.WORD $'NAM'NUM
.ENDM
.ENDC
;
; RETURN FROM SUBROUTINE
;
.MACRO RETURN
RTS PC
.ENDM
;
; SOB LOOP INSTRUCTION
;
.IF NDF R$$SOB
.MACRO SOB A,B
DEC A
BNE B
.ENDM
.ENDC
;
; STATE SWITCHING MACRO
;
.MACRO SWSTK$ ARG
CALL $SWSTK,ARG
.ENDM
.IF DF F$$LPP
;
; LOAD FLOATING DOUBLE
;
.MACRO LDD A,B
.NTYPE N,A
.NTYPE M,B
.WORD 172400+<M*64.>+N
.ENDM
;
; LOAD FLOATING POINT STATUS
;
.MACRO LDFPS A
.IF IDN <A>,<@H.FPSA(R2)>
.WORD 170100+72
.WORD H.FPSA
.IFF
.NTYPE N,A
.WORD 170100+N
.ENDC
.ENDM
;
; SET DOUBLE FLOATING MODE
;
.MACRO SETD
.WORD 170011
.ENDM
;
; STORE FLOATING DOUBLE
;
.MACRO STD A,B
.NTYPE N,A
.NTYPE M,B
.WORD 174000+<N*64.>+M
.ENDM
;
; STORE FLOATING POINT STATUS
;
.MACRO STFPS A
.NTYPE N,A
.WORD 170200+N
.ENDM
;
; STORE STATUS
;
.MACRO STST A
.WORD 170337
.WORD FLSTS
.ENDM
.ENDC
;
; GET I/O PACKET MACRO -- USED FOR RSX-11M-PLUS COMPATIBILITY
;
.MACRO GTPKT$ DEV,NCTRLR,ADDR,UCBSV,SUC
CALL $GTPKT
.IF B <ADDR>
BCC 65535$
RETURN
65535$:
.IFF
BCS ADDR
.ENDC
.IF B <UCBSV>
.IFF
.IF GT NCTRLR-1
MOV R5,UCBSV(R3)
.IFF
MOV R5,UCBSV
.ENDC
.ENDC
.ENDM
;
; GENERATE THE DRIVER DISPATCH TABLE -- DDT (USED FOR RSX-11M-PLUS COMPATIBILITY)
;
.MACRO DDT$ DEV,NCTRLR,INY,INX,UCBSV,NEW
$'DEV'TBL::
.IF B <INX>
.WORD DEV'INI
.IFF
.WORD DEV'INX
.ENDC
.WORD DEV'CAN
.WORD DEV'OUT
.WORD DEV'PWF
.IF NB NEW
.ERR NEW ; UNSUPPORTED RSX-11M-PLUS FEATURE
.ENDC
.IF NB <UCBSV>
UCBSV: .BLKW NCTRLR
.ENDC
.ENDM
.IIF NDF S$$YDF , .LIST